﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SmartMedicalCare.Domain
{
    /// <summary>
    /// 医院表
    /// </summary>
    [Table("hospital")]
    public class HospitalModel
    {
        /// <summary>
        /// 【主键·自增】唯一标识每家医院
        /// 业务：数据库中每家医院有唯一ID，方便后续关联科室、查询详情时精准定位。
        /// </summary>
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int HospitalId { get; set; }

        /// <summary>
        /// 【必填】医院名称
        /// 业务：医院的官方名称（如“智慧第一医院”），是用户识别医院的核心标识。
        /// </summary>
        [Required]
        [MaxLength(100)]
        public string Name { get; set; } = string.Empty;
        /// <summary>
        /// 列表图
        /// </summary>
        public string? HospitalImg { get; set; }
        /// <summary>
        /// 是否推荐
        /// </summary>
        public bool? IsHospital { get; set; }
        /// <summary>
        /// 医生人数
        /// </summary>
        public int HospitalCount { get; set; }
        /// <summary>
        /// 科室数
        /// </summary>
        public int HospitalCountTow { get; set; }

        /// <summary>
        /// 所在地区
        /// </summary>
        public string? HospitalAdd { get; set; }
        /// <summary>
        /// 详细地址
        /// </summary>
        public string? HospitalAddTow { get; set; }
        /// <summary>
        /// 医院电话
        /// </summary>
        public string? HospitalPhone { get; set; }
        /// <summary>
        /// 导航属性：一家医院对应**多个科室**（“一对多”的“多”侧集合）
        /// 业务：通过该属性，可直接获取医院下属的所有科室（如“智慧第一医院”的“内科”“外科”）。
        /// </summary>
        public List<DepartmentModel>? Departments { get; set; } = new List<DepartmentModel>();
        /// <summary>
        /// 【可选】医院简介
        /// 业务：医院的特色、历史、优势科室等介绍（如“成立于1990年，以骨科为特色科室”），提升用户信任。
        /// </summary>
        [MaxLength(1000)]
        public string Intro { get; set; } = string.Empty;
        /// <summary>
        /// 创建人
        /// </summary>
        public string? CreateName {  get; set; }
        /// <summary>
        /// 创建时间
        /// 业务：记录医院信息的创建时间，用于管理审计（追溯“谁什么时候添加了这家医院”）。
        /// </summary>
        public DateTime CreateTime { get; set; } = DateTime.Now;
        /// <summary>
        /// 逻辑删除标记：true=已删除，false=正常
        /// 业务：标记医院是否“逻辑删除”，物理数据仍保留在库中，便于追溯历史合作记录。
        /// </summary>
        public bool IsDeleted { get; set; } = false;
        /// <summary>
        /// 医院等级
        /// </summary>
        public string head { get; set; }



        
    }
}
